Cadastrar eventos/compromissos no Google Agenda com cURL [PHP]

Publicado por Renan Martins Pimentel em 16/12/2011

[ Hits: 20.446 ]

Blog: http://www.renanmpimentel.com.br

 


Cadastrar eventos/compromissos no Google Agenda com cURL [PHP]



Bom, hoje vou falar sobre o Google Agenda. Acho que muitas pessoas usam e a grande maioria pelo menos já ouviu falar sobre essa maravilha do Google.

Como muitas empresas utilizam esta agenda, porque ela permite ter compartilhamento de compromissos, eventos e etc. Então, vou mostrar como atualizar sua agenda usando cURL.

Mas antes de começar, vamos precisar baixar duas classes e tratar o formulário para envio.

1º- Vamos baixar as classes:
As duas classes foram encontradas no site abaixo, muito bom por sinal:
2º- Vamos tratar o formulário de cadastro de compromissos:

Usando o jQuery Datepicker para ajudar na visualização do calendário.

Usar uma função em JavaScript para tratar o horário de forma correta.

3º- Criando o Formulário:

<form action="modulos/agenda/scripts/s_cadastrar.php" method="post"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td>Nome do Evento</td> <td><input type="text" name="agenda_evento"></td> </tr> <tr> <td>Descrição</td> <td><textarea name="agenda_descricao"></textarea></td> </tr> <tr> <td>Local</td> <td><input type="text" name="agenda_local"></td> </tr> <tr> <td>Data Inicial</td> <td><input type="text" name="agenda_d_inicial" class="campo_data"></td> </tr> <tr> <td>Data Final</td> <td><input type="text" name="agenda_d_final" class="campo_data"></td> </tr> <tr> <td>Horário Inicial</td> <td><input type="text" name="agenda_h_inicial" class="mask-hora" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td>Horário Final</td> <td><input type="text" name="agenda_h_final" class="mask-hora" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Enviar" class="enviar"></td> </tr> </table> </form>


4º- Montando o HTML completo:

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Agendda Google - Renan Martins Pimentel</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <!-- Date picker --> <link type="text/css" href="js/jquery_datepicker/core.css" rel="stylesheet" media="screen"> <link type="text/css" href="js/jquery_datepicker/datepicker.css" rel="stylesheet" media="screen"> <link type="text/css" href="js/jquery_datepicker/theme.css" rel="stylesheet" media="screen"> <script type="text/javascript" src="js/jquery_datepicker/datepicker.js"></script> <script type="text/javascript" src="js/jquery_datepicker/datepicker-pt-BR.js"></script> <script type="text/javascript"> //-- Função para exibir calendarios nos campos data jquery do botao de gerar relatorio --// $(function(){ $(".campo_data").datepicker($.datepicker.regional['pt-BR']); }); <!-- /Date picker --> /* Mascara para horario */ function MascaraHora(objeto){ if(objeto.value.length == 2) objeto.value = objeto.value + ':'; if(objeto.value.length == 4) objeto.value = objeto.value; } </script> </head> <body> <form action="s_cadastrar.php" method="post"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td>Nome do Evento</td> <td><input type="text" name="agenda_evento"></td> </tr> <tr> <td>Descrição</td> <td><textarea name="agenda_descricao"></textarea></td> </tr> <tr> <td>Local</td> <td><input type="text" name="agenda_local" /></td> </tr> <tr> <td>Data Inicial</td> <td><input type="text" name="agenda_d_inicial" /></td> </tr> <tr> <td>Data Final</td> <td><input type="text" name="agenda_d_final" /></td> </tr> <tr> <td>Horário Inicial</td> <td><input type="text" name="agenda_h_inicial" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td>Horário Final</td> <td><input type="text" name="agenda_h_final" maxlength="5" onkeypress="MascaraHora(this);" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Enviar" class="enviar"></td> </tr> </table> </form> </body> </html>


5º- Script para envio:

<?php include ('GoogleCalendarWrapper.php'); $gc = new GoogleCalendarWrapper("seuemail@gmail.com", "suasenha"); //$gc->feed_url = "http://www.google.com/calendar/feeds/untiuro1rs%40group.calendar.google.com/private-6a7151779f99b/basic"; //specify this, if you want to work with not-default calendar (check this: http://code.google.com/apis/gdata/calendar.html#get_feed) //Função para tratar data que vem com padrão PT-BR pelo jQuery function formatar_data_contrario($d) { $d1 = explode("/", $d); return $d1[2]."-".$d1[1]."-".$d1[0]; } // Receber os dados via POST $titulo = $_POST['agenda_evento']; $conteudo = $_POST['agenda_descricao']; $local = $_POST['agenda_local']; $dia_inicio = formatar_data_contrario($_POST['agenda_d_inicial']); $dia_fim = formatar_data_contrario($_POST['agenda_d_final']); $hora_inicio = $_POST['agenda_h_inicial'].":00"; $hora_fim = $_POST['agenda_h_final'].":00"; $s = array(); $s["title"] = "$titulo"; $s["content"] = "$conteudo"; $s["where"] = "$local"; $s["startDay"] = "$dia_inicio"; $s["startTime"] = "$hora_inicio"; $s["endDay"] = "$dia_fim"; $s["endTime"] = "$hora_fim"; if($gc->add_event($s)) echo "Enviado com sucesso!"; else echo "Não enviou!"; ?>


Lembrando um pouco de Lógica, que um evento não pode terminar antes da data de inicio, e o mesmo serve para o horário.

Em um outro tutorial eu explico como visualizar o Google Agenda dentro do seu sistema.

Para fazer download dos arquivos usados acima, clique aqui:
Abraços e até a próxima!

Outras dicas deste autor

Mostrar a previsão do tempo com PHP

Verificar se o CPF é válido

Autenticação e criptografia de senhas usando PHP

Gerando QR Code com PHP

Upload de várias imagens com PHP e jQuery

Leitura recomendada

Integração com PagSeguro no CakePHP 2.x

P4A - PHP For Applications

Nasce site sobre Zend Framework

Docker, Git e PHP

Documentação do CodeIgniter em português

  

Comentários
[1] Comentário enviado por brasmid em 15/08/2014 - 22:18h

O link para download está com problema, este código citado é a versão mais atual?




http://www.brasmid.com.br



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts